package com.example.chang.law_doc.ui;

import android.content.Intent;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.support.annotation.Nullable;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.view.Gravity;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;

import com.example.chang.law_doc.R;
import com.example.chang.law_doc.entity.Msg;
import com.example.chang.law_doc.utils.MsgAdapter;
import com.example.chang.law_doc.view.CustomDialog;
import com.example.chang.law_doc.view.CustomDialogTwo;

import java.util.ArrayList;
import java.util.List;

import cn.bmob.v3.BmobUser;
import cn.bmob.v3.exception.BmobException;
import cn.bmob.v3.listener.SaveListener;

/**
 * Created by chang on 2018/3/24.
 * 项目描述：
 */

public class TalkActivity extends AppCompatActivity implements View.OnClickListener {
    private TextView tv_back;
    private ImageView iv_left;
    private TextView tv_title;
    private ListView msgListView;
    private EditText inputText;
    private Button send;
    private MsgAdapter adapter;
    private CustomDialog dialog;
    private CustomDialogTwo dialog2;
    MyCountTimer timer;

    private List<Msg> msgList = new ArrayList<Msg>();
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ActionBar actionBar = getSupportActionBar();
        actionBar.hide();
        setContentView(R.layout.activit_talk);
        initView();
        initMsgs();
        adapter = new MsgAdapter(TalkActivity.this, R.layout.msg_item, msgList);
        inputText = (EditText)findViewById(R.id.input_text);
        send = (Button)findViewById(R.id.send);
        msgListView = (ListView)findViewById(R.id.msg_list_view);
        msgListView.setAdapter(adapter);
        msgListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                if (i==2){
                    Msg msg1 = new Msg("服务合同", Msg.TYPE_SEND);
                    msgList.add(msg1);
                    adapter.notifyDataSetChanged();
                    msgListView.setSelection(msgList.size());

                    //timer = new MyCountTimer(2000, 1000);
                    //timer.start();

                    //timer1.cancel();
                    //delay(2000);
                    String msg="服务合同包括：";
                    Msg msg2 = new Msg(msg, Msg.TYPE_MID_BIG);
                    msgList.add(msg2);
                    Msg msg3 = new Msg("物业服务合同纠纷", Msg.TYPE_MID);
                    msgList.add(msg3);
                    Msg msg4 = new Msg("房地产价格评估合同纠纷", Msg.TYPE_MID);
                    msgList.add(msg4);
                    Msg msg5 = new Msg("房地产咨询合同纠纷", Msg.TYPE_MID);
                    msgList.add(msg5);

                }
                if (i==11){
                    Msg msg1 = new Msg("物业服务合同纠纷", Msg.TYPE_SEND);
                    msgList.add(msg1);
                    adapter.notifyDataSetChanged();
                    msgListView.setSelection(msgList.size());
                    Msg msg2 = new Msg("是否涉及证据问题？", Msg.TYPE_RECEIVED);
                    msgList.add(msg2);
                }
                if (i==45){
                    startActivity(new Intent(TalkActivity.this, ResultTextActivity.class));
                }
            }
        });
        send.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String content = inputText.getText().toString();
                if(!"".equals(content)) {
                    Msg msg = new Msg(content, Msg.TYPE_SEND);
                    msgList.add(msg);
                    adapter.notifyDataSetChanged();
                    msgListView.setSelection(msgList.size());
                    inputText.setText("");
                    int n= msgList.size();
                    if (n==17){
                        Msg msg2 = new Msg("证据是否充足？", Msg.TYPE_RECEIVED);
                        msgList.add(msg2);
                    }
                    if (n==19){
                        Msg msg2 = new Msg("是否存在合法有效问题？", Msg.TYPE_RECEIVED);
                        msgList.add(msg2);
                    }
                    if (n==21){

                        Msg msg11= new Msg("合同内容是否与实际相符？", Msg.TYPE_RECEIVED);
                        msgList.add(msg11);
                    }
                    if (n==23){

                        Msg msg11= new Msg("是否存在收费标准争议？", Msg.TYPE_RECEIVED);
                        msgList.add(msg11);
                    }
                    if (n==25){

                        Msg msg11= new Msg(" 是否与服务费和服务合同有关？", Msg.TYPE_RECEIVED);
                        msgList.add(msg11);
                    }
                    if (n==27){

                        Msg msg11= new Msg(" 是否存在违约行为发生？", Msg.TYPE_RECEIVED);
                        msgList.add(msg11);
                    }
                    if (n==29){

                        Msg msg11= new Msg("违约责任由谁承担问题？", Msg.TYPE_RECEIVED);
                        msgList.add(msg11);
                    }
                    if (n==31){

                        Msg msg11= new Msg("是否与物业费缴费有关？", Msg.TYPE_RECEIVED);
                        msgList.add(msg11);
                    }
                    if (n==33){

                        Msg msg11= new Msg("是否拖欠物业费？", Msg.TYPE_RECEIVED);
                        msgList.add(msg11);
                    }
                    if (n==35){

                        Msg msg11= new Msg(" 是否存在提供事实物业服务？", Msg.TYPE_RECEIVED);
                        msgList.add(msg11);
                    }
                    if (n==37){

                        Msg msg11= new Msg("是否存在合同有效性以及效力问题？", Msg.TYPE_RECEIVED);
                        msgList.add(msg11);
                    }
                    if (n==39){

                        Msg msg11= new Msg("是否存在合同有效性以及效力问题？", Msg.TYPE_RECEIVED);
                        msgList.add(msg11);
                    }
                    if (n==41){

                        Msg msg11= new Msg("是否存在与事实不符情况？", Msg.TYPE_RECEIVED);
                        msgList.add(msg11);
                    }

                    if (n==43){
                        dialog.show();
                        BmobUser user = new BmobUser();
                        user.setUsername("Wishteam");
                        user.setPassword("666");
                        user.login(new SaveListener<BmobUser>() {
                            @Override
                            public void done(BmobUser bmobUser, BmobException e) {

                                if (e == null) {
                                    dialog.dismiss();
                                } else {
                                    dialog.dismiss();
                                }
                            }
                        });
                        Msg msg10= new Msg("因此，建议不诉讼", Msg.TYPE_RESULT);
                        msgList.add(msg10);
                        Msg msg11= new Msg("为您推荐相关案例结果：", Msg.TYPE_RECEIVED);
                        msgList.add(msg11);
                        Msg msg12 = new Msg("严世田与南京蓝德物业管理...民事裁定书", Msg.TYPE_MID);
                        msgList.add(msg12);
                        Msg msg13 = new Msg("本溪市龙园物业有限公司与...民事裁定书", Msg.TYPE_MID);
                        msgList.add(msg13);
                        Msg msg14 = new Msg("通化华翔置业投资有限公司...民事裁定书", Msg.TYPE_MID);
                        msgList.add(msg14);
                        Msg msg15 = new Msg("吴桂成与天津市麦购房地产...民事裁定书", Msg.TYPE_MID);
                        msgList.add(msg15);
                        Msg msg16 = new Msg(" ", Msg.TYPE_MID);
                        Msg msg17 = new Msg("点击查看更多 >> ", Msg.TYPE_MID);
                        msgList.add(msg17);
                        msgList.add(msg16);
                        msgList.add(msg16);
                        /*CountDownTimer timer1;
                        timer1=new CountDownTimer(3000,100) {
                            @Override
                            public void onTick(long l) {
                                dialog2.show();
                            }

                            @Override
                            public void onFinish() {
                                dialog2.dismiss();
                                Msg msg10= new Msg("因此，建议不诉讼", Msg.TYPE_RESULT);
                                msgList.add(msg10);
                                Msg msg11= new Msg("为您推荐相关案例结果：", Msg.TYPE_RECEIVED);
                                msgList.add(msg11);
                                Msg msg12 = new Msg("严世田与南京蓝德物业管理...民事裁定书", Msg.TYPE_MID);
                                msgList.add(msg12);
                                Msg msg13 = new Msg("本溪市龙园物业有限公司与...民事裁定书", Msg.TYPE_MID);
                                msgList.add(msg13);
                                Msg msg14 = new Msg("通化华翔置业投资有限公司...民事裁定书", Msg.TYPE_MID);
                                msgList.add(msg14);
                                Msg msg15 = new Msg("吴桂成与天津市麦购房地产...民事裁定书", Msg.TYPE_MID);
                                msgList.add(msg15);
                                Msg msg16 = new Msg(" ", Msg.TYPE_MID);
                                Msg msg17 = new Msg("点击查看更多 >> ", Msg.TYPE_MID);
                                msgList.add(msg17);
                                msgList.add(msg16);
                                msgList.add(msg16);
                            }
                        };
                        timer1.start();
*/

                    }
                    hide_keyboard();
                }
            }
        });
    }

    private void initView() {
        tv_back= (TextView) findViewById(R.id.tv_back_header);
        tv_back.setOnClickListener(this);
        iv_left= (ImageView) findViewById(R.id.iv_left);
        iv_left.setOnClickListener(this);
        tv_title= (TextView) findViewById(R.id.tv_title);
        tv_title.setText("智能咨询");
        dialog= new CustomDialog(this,200,200,R.layout.dialog_result,R.style.Theme_dialog, Gravity.CENTER,R.style.pop_anim_style);
        //屏幕外点击无效
        dialog.setCancelable(false);
        dialog2= new CustomDialogTwo(this,100,100,R.layout.dialog_wait,R.style.Theme_dialog, Gravity.CENTER,R.style.pop_anim_style);
        //屏幕外点击无效
        dialog2.setCancelable(false);
    }
    class MyCountTimer extends CountDownTimer {

        public MyCountTimer(long millisInFuture, long countDownInterval) {
            super(millisInFuture, countDownInterval);
        }

        @Override
        public void onTick(long millisUntilFinished) {
            dialog.show();
        }

        @Override
        public void onFinish() {
            dialog.dismiss();
        }
    }
    private void initMsgs() {
        Msg msg1 = new Msg("Hi ,你好，我是法小智，我会十八般武艺哦，你的问题我都能解决哦！", Msg.TYPE_RECEIVED);
        msgList.add(msg1);
        String msg="请选择你的纠纷类型：";
        Msg msg2 = new Msg(msg, Msg.TYPE_MID_BIG);
        msgList.add(msg2);
        Msg msg3 = new Msg("服务合同", Msg.TYPE_MID);
        msgList.add(msg3);
        Msg msg4 = new Msg("房屋买卖合同纠纷", Msg.TYPE_MID);
        msgList.add(msg4);
        Msg msg5 = new Msg("建设工程", Msg.TYPE_MID);
        msgList.add(msg5);
        Msg msg6 = new Msg("招标投标买卖合同纠纷", Msg.TYPE_MID);
        msgList.add(msg6);
        Msg msg7 = new Msg("建设用地使用权合同纠纷", Msg.TYPE_MID);
        msgList.add(msg7);
        Msg msg8 = new Msg("房地产开发经营合同纠纷", Msg.TYPE_MID);
        msgList.add(msg8);
        Msg msg9 = new Msg("房屋拆迁安置补偿合同纠纷", Msg.TYPE_MID);
        msgList.add(msg9);
    }
    private void delay(int ms){
        try {
            Thread.currentThread();
            Thread.sleep(ms);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
    private void hide_keyboard() {
        InputMethodManager imm = (InputMethodManager)getSystemService(TalkActivity.INPUT_METHOD_SERVICE);
        if(imm.isActive()&&getCurrentFocus()!=null){
            if (getCurrentFocus().getWindowToken()!=null) {
                imm.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
            }
        }
    }

    @Override
    public void onClick(View view) {
        switch (view.getId()){
            case R.id.tv_back_header:
            case R.id.iv_left:
                finish();
                break;
        }
    }
}
